#!/usr/bin/python

####################################################################
# Blitzprog Precompiler 0.8.1
#   (C) 2008 by Eduard Urbach
# 
# Website:   www.blitzprog.de
# 
# Started:           29.05.08
# Last update:       06.10.09
####################################################################

####################################################################
# Known bugs
####################################################################
#
# - Currently there is no OR operator: IfDef Linux|MacOS
#

####################################################################
# ChangeLog
####################################################################
#
# 11.10.2009 -> 0.8.2
#
# - Bugfix: Whitespaces can be used in the compiler path
#
# 06.10.2009 -> 0.8.1
#
# - Added more statistics
# - User can specify how many functions will be displayed in the graphs
# - Bugfix: Division by zero will be prevented
# - Bugfix: Strict and SuperStrict are not case sensitive anymore
#
# 05.10.2009 -> 0.8.0
#
# - Bugfix: "Final" classes can be compiled
# - Bugfix: Removed multiple variable declarations
#
# 05.10.2009 -> 0.7.9
#
# - Graphs have been added (one can see the top 20 functions for each category)
# - Debugging section added
# - Memory usage information for every class
# - Precompiler produces more useful error messages (Traceback works now)
# - Bugfix: Added NOT operator for IfDef
# - Bugfix: Removed exception type that did not exist
#
# 04.10.2009 -> 0.7.8
#
# - Bugfix: Binary file uses a relative path for creating the profiler html file
#
# 27.07.2008 -> 0.7.7
#
# - Bugfix: Added a check for "null" (None) pointer
#
# 26.07.2008 -> 0.7.6
#
# - Enable the profiler with a "PreCompOn" comment ("PreCompOff" for disabling)
# - Shows the number of "ToDo" comments in your code
# - New default style: "Monochrome"
#
# 26.07.2008 -> 0.7.5
#
# - Bugfix BB: Functions in the main file have the correct profiler data
#
# 26.07.2008 -> 0.7.4
#
# - Correct parsing of "Abstract" types
# - New ReadMe (with english translation)
# - Option "Precompiler" to disable the precompiler (see config file)
#
# 24.07.2008 -> 0.7.3
#
# - Disable the profiler by adding the comment "PreCompOff"
# - Average time has float precision (see config file)
# - Readme.txt update
# - Fixed "whitespace in file path" bug
#
# 05.07.2008 -> 0.7.2
#
# - Types are displayed in a list
# - Code stats and profile data are separated in the function view
# - Improved source code readability (in function createProfilerFile)
# - Fixed "whitespace in blitzpath" bug
# - Fixed a minor bug concerning functions
#
# 04.07.2008 -> 0.7.1
#
# - Added scripting
# - CollIDE integration
# - Realtime profiler data for CollIDE (thanks to Blitzcoder)
# - Relative paths
# - Fixed another "End" bug (BB precompiler)
# - Fixed some minor bugs
#
# 28.06.2008 -> 0.6.0
#
# - Support for the standard IDE (BB)
# - Improved Windows support (blitzpath environment variable)
# - Changed configuration file (config.ini)
# - Log configuration (append messages)
# - Line count for functions and methods
# - Fixed "End()" bug
#
# 26.06.2008 -> 0.5.0
#
# - Threading: Precompiler uses multiple threads
# - "Linux" and "MacOS" constant will be set on posix/mac systems
# - Types overview
# - Changed ReadMe file
# - Fixed some "IfDef" bugs
#
# 17.06.2008 -> 0.4.0
# 
# - Fixed include bug in the BB precompiler
# - Fixed "Return" bug (return can be used outside functions, too)
# - Compiling precompiled files works
# - Improved HTML visualization
# - Style can be modified via style sheets
# - "?" won't be ignored
# - Added #!/usr/bin/python to the source code
# - Lots of bug fixes
# 
# 03.06.2008 -> 0.3.2
# 
# - Not case sensitive anymore
# 
# 02.06.2008 -> 0.3.1
# 
# - BMax: Lines with "?" at the beginning will be ignored
# - Fixed two bugs in the scanner
# - Debug mode
# 
# 02.06.2008 -> 0.3.0
# 
# - Blitz3D support for IDEal
# - Function counter works
# - Method counter
# - Improved visual appearance in the HTML file
# - Fixed "Rem" bug in the scanner
# 
# 01.06.2008 -> 0.2.2
# 
# - BLide support (experimental)
# - Code stats
# - Functions and methods sorting by types
# - Logs are now saved as $(title).profiler.$(ext)
# - First "Non-Header" command will be parsed
# - Time measuring
# - Fixed some bugs in the "scanner"
# 
# 31.05.2008 -> 0.2.1
# 
# - Method profiling works properly
# - Files with "Type" as the first keyword can be precompiled
# 
# 31.05.2008 -> 0.2.0
# 
# - Unicode support
# - Uses default configuration if config file isn't available
# - Importing/Including files with absolute paths works
# - Only precompiles imported .bmx files (ignores .a files)
# - One can use the "End" keyword in any imported file
#   as the precompiler now uses "OnEnd"
# - One can use whitespaces in paths
# - One can specify after which average execution time in
#   milliseconds a function is regarded as "critical"
# - The following chars can be used as "type tags":
#   %, #, !, $
# - Traceback prints the line number and the line itself
# - Abstract methods are ignored
# - Improved speed
# - Lots of bug fixes
# 
# 30.05.2008 -> 0.1.1
# 
# - Comments are ignored (both single-line and multi-line)
# - Only precompiles if argument list contains "makeapp"
# - Added "tab" char to whitespace list
# - Config file
# - Some smaller bug fixes
# 

# Import
from App import *

# Main
if __name__ == '__main__':
    try:
        myApp = App()
        myApp.run()
    except Exception:
        printTraceback()
    
    
                            
